package com.quectel.core.module.village.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 房间
 *
 * @author caolu
 * @email louis.cao@quectel.com
 * @date 2021-11-01 11:46:49
 */
@Data
@Schema
public class VillageRoomDto implements Serializable {

    /**
     * ID
     */
    @Schema(description = "ID")
    private Long id;

    /**
     *
     */
    @Schema(description = "")
    private Long tenantId;

    /**
     * 小区id
     */
    @Schema(description = "小区id")
    @NotNull
    private Long villageId;

    /**
     * 楼栋id
     */
    @Schema(description = "楼栋id")
    @NotNull
    private Long buildingId;

    /**
     * 楼层id
     */
    @Schema(description = "楼层id")
    @NotNull
    private Long floorId;

    /**
     * 房屋名称
     */
    @Schema(description = "房屋名称")
    @NotEmpty
    @Length(min = 1, max = 80)
    private String name;

    /**
     * 房屋类型1住宅2商业
     */
    @Schema(description = "房屋类型1住宅2商业")
    private Byte roomNature;

    /**
     * 房屋面积
     */
    @Schema(description = "房屋面积平方米")
    private BigDecimal roomArea;

    /**
     * 户型1：1室1厅  2：2室1厅  3：3室1厅  4：4室1厅  5：2室2厅  6：3室2厅 7：4室2厅 9：其他
     */
    @Schema(description = "户型1：1室1厅  2：2室1厅  3：3室1厅  4：4室1厅  5：2室2厅  6：3室2厅 7：4室2厅 9：其他")
    private Byte roomType;

    /**
     * 房屋用途0空置1自住2出租
     */
    @Schema(description = "房屋用途0空置1自住2出租")
    private Byte roomUsage;

    /**
     * 业主姓名
     */
    @Schema(description = "业主姓名")
    private String ownerName;

    /**
     * 业主电话
     */
    @Schema(description = "业主电话")
    private String ownerMobile;

    /**
     * 标签
     */
    @Schema(description = "标签")
    private String tags;

    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String creator;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 修改人
     */
    @Schema(description = "修改人")
    private String editor;

    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    private Date editTime;

    /************非数据库字段 start ************/
    /**
     * 小区名称
     */
    @Schema(description = "小区名称")
    private String villageName;

    /**
     * 楼栋名称
     */
    @Schema(description = "楼栋名称")
    private String buildingName;
    /**
     * 楼层名称
     */
    @Schema(description = "楼层名称")
    private String floorName;

    /**
     * 楼层实际高度 数字类型
     */
    @Schema(description = "楼层实际高度 数字类型")
    private Integer floorNo;

    /**
     * 居住人数
     */
    @Schema(description = "居住人数")
    private Integer peopleCount;
    /************非数据库字段 end **************/
}
